package com.yand.thread.futures;

import java.util.concurrent.*;

public class Test {


    public  static void main(String [] args){




        ExecutorService executor =
                Executors.newSingleThreadExecutor(); //使用线程池
        //执行FutureTask，相当于上例中的client.request("name")发送请求
        Future fn =  executor.submit(new MyTask());
        executor.shutdown();
        //这里可以用一个sleep代替对其他业务逻辑的处理
        //在处理这些业务逻辑过程中，RealData也正在创建，从而充分了利用等待时间
        //使用真实数据
        //如果call()没有执行完成依然会等待
        while(!fn.isDone()){
            try {
                System.out.println("数据=" + fn.get());
            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (ExecutionException e) {
                e.printStackTrace();
            }
        }



    }
}
